from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
import pandas as pd

def calc():
    # 数据库连接信息
    username = 'root'  # 替换为你的数据库用户名
    password = '123456'  # 替换为你的数据库密码
    host = '127.0.0.1'  # 替换为你的数据库主机地址
    port = '3306'  # 替换为你的数据库端口（默认3306）
    database = 'zhipin_jobs'  # 替换为你的数据库名称

    # 创建数据库连接
    engine = create_engine(f'mysql+pymysql://{username}:{password}@{host}:{port}/{database}')

    # SQL查询语句，查询brandName列
    query = 'SELECT brandName FROM joblist;'  # 替换为你的表名和查询语句

    # SQL查询语句，查询brandName列
    query = 'SELECT brandName FROM joblist;'  # 替换为你的表名和查询语句

    # 从MySQL读取数据
    df = pd.read_sql(query, engine)

    # 统计每个brandName的重复记录数
    brandName_counts = df['brandName'].value_counts().reset_index()
    brandName_counts.columns = ['brandName', '重复记录数']

    # 定义分类规则
    def classify_count(count):
        if count == 1:
            return '1人'
        elif count == 2:
            return '2人'
        elif count == 3:
            return '3人'
        elif count == 4:
            return '4人'
        elif count == 5:
            return '5人'
        elif 5 < count <= 10:
            return '5人以上10人以下'
        else:
            return '10人以上'

    # 应用分类规则
    brandName_counts['分类'] = brandName_counts['重复记录数'].apply(classify_count)

    # 筛选出重复记录数大于1的记录
    duplicates = brandName_counts[brandName_counts['重复记录数'] >= 1]

    print("重复的brandName及其记录数和分类：")
    print(duplicates)

    # 输出结果到Excel文件
    output_file = 'brandName_duplicates.xlsx'  # 输出文件名
    duplicates.to_excel(output_file, index=False, engine='openpyxl')

    print(f"结果已保存到文件：{output_file}")


if __name__ == '__main__':
    calc()
